package com.sse.casa.simulacion;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import com.sse.casa.vo.CasaVO;

/**
 * 
 * @author Andres
 * 
 */
public class ManejadorCasa {
	public static ArrayList<CasaVO> obtenerCasas() throws Exception {
		ArrayList<CasaVO> lCasas = new ArrayList<CasaVO>();

		Connection con = ConectorBD.getConexion();
		Statement sqlStatement = con.createStatement();
		ResultSet rs = null;

		rs = sqlStatement.executeQuery("SELECT cas_id, cas_nombre FROM casa");

		while (rs.next()) {

			CasaVO vo = new CasaVO();

			vo.setIdentificador(rs.getInt("cas_id"));
			vo.setDescripcion(rs.getString("cas_nombre"));

			lCasas.add(vo);
		}

		con.close();

		return lCasas;
	}

	public static CasaVO obtenerCasa(int cas_id) throws Exception {
		Connection con = ConectorBD.getConexion();
		Statement sqlStatement = con.createStatement();
		ResultSet rs = null;

		rs = sqlStatement.executeQuery("SELECT cas_id, cas_nombre FROM casa WHERE cas_id=" + cas_id);

		CasaVO vo = new CasaVO();
		
		if (rs.next()) {			
			vo.setIdentificador(rs.getInt("cas_id"));
			vo.setDescripcion(rs.getString("cas_nombre"));
		}

		con.close();
		
		return vo;

	}

	public static int ingresarCasa(CasaVO vo) throws Exception {
		String strSql = "INSERT INTO casa(" + "cas_id," + "cas_nombre"
				+ ") VALUES (?, ?)";

		Connection con = ConectorBD.getConexion();
		PreparedStatement pstmt = con.prepareStatement(strSql);

		pstmt.setInt(1, vo.getIdentificador());
		pstmt.setString(2, vo.getDescripcion());

		int resultado = pstmt.executeUpdate();

		con.close();

		return resultado;
	}

	public static void main(String[] args) throws Exception {

		// SE CREA 50 CASAS
		for (int i = 0; i < 50; i++) {
			CasaVO vo = new CasaVO();

			vo.setIdentificador(i + 1);
			vo.setDescripcion("CASA " + (i + 1));

			ManejadorCasa.ingresarCasa(vo);
		}

		System.out.println(ManejadorCasa.obtenerCasas().size());

	}
}
